home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_06 / saks / genq2.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-08  |  753 b   |  52 lines

  1. Listing 9 - member function definitions for a queue of void *
  2.  
  3. //
  4. // genq2.cpp - a generic queue of void * (implementation)
  5. //
  6.  
  7. #include "genq2.h"
  8.  
  9. void genq::append(void *e)
  10.     {
  11.     cell *p = new cell(e, 0);
  12.     if (first == 0)
  13.         first = p;
  14.     else
  15.         last->next = p;
  16.     last = p;
  17.     }
  18.  
  19. void genq::clear()
  20.     {
  21.     cell *p;
  22.     while (first != 0)
  23.         {
  24.         p = first;
  25.         first = first->next;
  26.         delete p->element;
  27.         delete p;
  28.         }
  29.     last = 0;
  30.     }
  31.  
  32. void genq::print(ostream &os) const
  33.     {
  34.     cell *p;
  35.     for (p = first; p != 0; p = p->next)
  36.         os << ' ' << p->element;
  37.     }
  38.  
  39. int genq::remove(void *&e)
  40.     {
  41.     if (first == 0)
  42.         return 0;
  43.     cell *p = first;
  44.     if ((first = first->next) == 0)
  45.         last = 0;
  46.     e = p->element;
  47.     delete p;
  48.     return 1;
  49.     }
  50.  
  51.  
  52.